Cloud DLP APIで正規表現のカスタムinfoType検出器を使ってみる(Cloud Shell + curl編)
はじめに
Cloud DLPはデータ内の機密情報有無を検出することができるGoogle Cloudのマネージドサービスです。
検出する情報を定義できるinfoType検出器はデフォルトでも150以上存在しますが、
今回は独自にカスタムしたinfoType検出器を使い、自分で指定した正規表現パターンでの情報検出を試してみました。
環境用意
※ 必要な権限付与については割愛し作業のみ記載します。
作業を行うGoogle Cloud プロジェクトでCloud Shellを起動します。
DLP APIを有効にします。
$ gcloud services enable dlp.googleapis.com
やってみた
サンプルをこちらのドキュメントから引用し、架空のカルテ番号をシミュレートした正規表現を設定して実行しました。
入力
Cloud Shellのエディタ機能で、リクエストする内容をjsonファイルとして保存します。
以下のjsonファイルを「inspect-request.json」という名前でホームディレクトリに保存します。
{ "item":{ "value":"Patients MRN 444-5-22222" }, "inspectConfig":{ "customInfoTypes":[ { "infoType":{ "name":"C_MRN" }, "regex":{ "pattern":"[1-9]{3}-[1-9]{1}-[1-9]{5}" }, "likelihood":"POSSIBLE" } ] } }
item.valueが検査したい文字列、 inspectConfig.customInfoTypes 内が検出ルールです。 content.inspect APIのパラメータの詳細はこちらのリファレンスに記載がありました。
実行と出力
ターミナルに戻り、以下のコマンドを実行します。 ※ [PROJECT_NAME] はご自身のプロジェクト名に変換してください。
実行
$ cd ~ && curl -s -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ -H \ "X-Goog-User-Project: [PROJECT_NAME]" \ -H \ "Content-Type: application/json" \ https://dlp.googleapis.com/v2/projects/[PROJECT_NAME]/content:inspect \ -d @inspect-request.json
出力
{ "result": { "findings": [ { "infoType": { "name": "C_MRN", "sensitivityScore": { "score": "SENSITIVITY_HIGH" } }, "likelihood": "POSSIBLE", "location": { "byteRange": { "start": "13", "end": "24" }, "codepointRange": { "start": "13", "end": "24" } }, "createTime": "2023-05-09T08:28:42.302Z", "findingId": "2023-05-09T08:28:42.302977Z6029351097285534895" } ] } }
入力データの13文字目から24文字目に、正規表現に合致するデータが検出されたことがわかります。